<?php
//此处定义加密信息
define('AES_KEY', 'js82sh72kojqy83li28hb32h68901hbg');

/**
 * 发送API错误
 *
 * @param string $code 编码
 * @param string $error 错误内容
 */
function send_api_error($code, $error)
{
    $arr = array("result_code" => $code, "result_info" => $error);

    if (!input('?get.no_encrypt')) {
        $body = aes_encrypt(json_encode($arr, JSON_UNESCAPED_UNICODE));
        die(json_encode(['body' => $body], JSON_UNESCAPED_UNICODE));
    } else {
        die(json_encode($arr, JSON_UNESCAPED_UNICODE));
    }
}

/*****************************错误编码****************************/
//登录异常错误
define("ZFN_API_ERROR_TOKEN", "1111");
//用户输入错误
define("ZFN_API_ERROR_USER", "2222");
//APP开发者错误
define("ZFN_API_ERROR_DEVELOPER", "3333");
//服务器端开发者错误
define("ZFN_API_ERROR_SERVER", "4444");
//用于小程序返回信息
define("ZFN_API_ERROR_SYSTEM", "5555");

/**
 * 发送服务器级别信息
 *
 * @param string $error 错误信息
 */
function send_server_error($error = "")
{
    send_api_error(ZFN_API_ERROR_SERVER, $error);
}

/**
 * 发送开发者级别错误信息
 *
 * @param string $error 错误信息
 */
function send_developer_error($error = "")
{
    send_api_error(ZFN_API_ERROR_DEVELOPER, $error);
}

/**
 * 发送用户输入错误
 *
 * @param string $error
 */
function send_user_error($error = "")
{
    send_api_error(ZFN_API_ERROR_USER, $error);
}/**
 * 发送用户输入错误
 *
 * @param string $error
 */
function send_system_error($error = "")
{
    send_api_error(ZFN_API_ERROR_SYSTEM, $error);
}

/**
 * 发送登录异常
 *
 * @param string $error
 */
function send_token_error($error = "")
{
    send_api_error(ZFN_API_ERROR_TOKEN, $error);
}


//必要的参数
/**
 * @param $data
 * @param $key
 * @return mixed
 */
function essential_param($data, $key)
{
    if (array_key_exists($key, $data))
    {
        return $data[$key];
    }
    else
    {
        send_developer_error("必选字段【".$key."】不存在,请核实文档后重试!");
    }
}



/**
 * 加密方法
 * @param string $str
 * @return string
 */
function aes_encrypt($ciphertext, $key = '')
{
    if($key==''){
        $key = AES_KEY;
    }

    $iv = substr($key, 0, 16);

    return base64_encode(openssl_encrypt($ciphertext, 'AES-256-CBC',$key, OPENSSL_RAW_DATA , $iv));
}

/**
 * 解密方法
 * @param string $str
 * @return string
 */
function aes_decrypt($ciphertext, $key = '')
{
    if($key==''){
        $key = AES_KEY;
    }
    $iv = substr($key, 0, 16);

    return openssl_decrypt(base64_decode($ciphertext), 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
}

/**
 * 身份证转星号
 * @param $id_card
 * @return string
 */
function id_card_star($id_card){
    if(empty($id_card)) return '';
    return substr($id_card,0,3).' *** **** **** **'.substr($id_card,-2);
}

function get_menu_img($type){
    return manageImg('/static/image/menu'.$type.'.png?v=4.4');
}


